<!doctype html>
<html lang="{{ site.lang | default: " en-US" }}">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="google-site-verification" content="QXdORjlMOtYUP5_TbrUN9xo-MB-fQU5MvH6i5x0_5H4" />
  {% seo %}
  <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"
    integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

  <link rel="stylesheet" href="{{ '/assets/css/style.css?v=' | append: site.github.build_revision | relative_url }}">

  <link rel="Shortcut Icon" type="image/x-icon" href="/icon.ico" />
  <script src="{{ '/assets/js/jquery.min.js' | relative_url }}"></script>
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"
    integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
    crossorigin="anonymous"></script>

  <script src="{{ '/assets/js/main.js' | relative_url }}"></script>
  <!-- [if lt IE 9]> -->
  <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"
    integrity="sha256-3Jy/GbSLrg0o9y5Z5n1uw0qxZECH7C6OQpVBgNFYa0g=" crossorigin="anonymous"></script>
  <!-- <![endif] -->
  <link rel="stylesheet" href="https://imsun.github.io/gitment/style/default.css">

  <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
  <style>
    #leetcode {
      margin-right: 10px;
      margin-left: 10px;
      cursor: pointer;
    }

    #zhihu {
      cursor: pointer;
    }

    #logo {
      cursor: pointer;
    }
	
    #docker {
      cursor: pointer;
    }
  </style>
</head>

<body>

  <header>
    <h1>{{ page.title | default: site.title | default: site.github.repository_name }}</h1>
    <p>{{ page.description | default: site.description | default: site.github.project_tagline }}</p>
    <div class="tag-top">
      <div id="tag-cloud">
        {% for tag in site.tags %}
        <a href="{{site.baseurl}}/tags/{{tag[0] | cgi}}" title="{{ tag[0] }}">
          {{ tag[0] }}<sup>{{ tag[1].size }}</sup>&nbsp;
        </a>
        {% endfor %}
      </div>
    </div>
  </header>

  <div id="banner">
    <span id="logo"></span>

    <a href="/" class="button fork"><strong>首页</strong></a>
    {% if site.show_downloads %}
    <div class="downloads">
      <ul>
		<li>
			<svg xmlns="http://www.w3.org/2000/svg" id='docker' preserveAspectRatio="xMidYMid meet" style="margin-top: 10px;color:white" width="60" height="26" viewBox="0 0 36 26"><path d="M35.2114674,9.90088871 C34.4018592,9.33913616 32.5465072,9.12847895 31.0959592,9.40935523 C30.9272908,8.00497385 30.1514163,6.77614015 28.8020694,5.68774458 L28.0261949,5.12599203 L27.4864561,5.93351132 C26.8117826,6.98679735 26.4744459,8.4613978 26.5756469,9.86577918 C26.6093806,10.3573127 26.778049,11.235051 27.2840541,12.0074608 C26.8117826,12.2883371 25.8335061,12.6394324 24.5516265,12.6394324 L0.16218026,12.6394324 L0.0947129121,12.9203087 C-0.141422805,14.32469 -0.141422805,18.7133819 2.62473845,22.0838972 C4.71622623,24.6468932 7.81972423,25.9459459 11.9014988,25.9459459 C20.7397213,25.9459459 27.2840541,21.6976923 30.3538184,14.0087042 C31.5682306,14.0438138 34.1657235,14.0087042 35.4813368,11.3754892 C35.5150705,11.3052701 35.5825378,11.1648319 35.8186736,10.6381889 L35.9536082,10.3573127 L35.2114674,9.90088871 L35.2114674,9.90088871 Z M19.6602438,0 L15.9495396,0 L15.9495396,3.51095344 L19.6602438,3.51095344 L19.6602438,0 L19.6602438,0 Z M19.6602438,4.21314413 L15.9495396,4.21314413 L15.9495396,7.72409758 L19.6602438,7.72409758 L19.6602438,4.21314413 L19.6602438,4.21314413 Z M15.2748662,4.21314413 L11.564162,4.21314413 L11.564162,7.72409758 L15.2748662,7.72409758 L15.2748662,4.21314413 L15.2748662,4.21314413 Z M10.8894886,4.21314413 L7.17878443,4.21314413 L7.17878443,7.72409758 L10.8894886,7.72409758 L10.8894886,4.21314413 L10.8894886,4.21314413 Z M6.50411095,8.42628826 L2.79340682,8.42628826 L2.79340682,11.9372417 L6.50411095,11.9372417 L6.50411095,8.42628826 L6.50411095,8.42628826 Z M10.8894886,8.42628826 L7.17878443,8.42628826 L7.17878443,11.9372417 L10.8894886,11.9372417 L10.8894886,8.42628826 L10.8894886,8.42628826 Z M15.2748662,8.42628826 L11.564162,8.42628826 L11.564162,11.9372417 L15.2748662,11.9372417 L15.2748662,8.42628826 L15.2748662,8.42628826 Z M19.6602438,8.42628826 L15.9495396,8.42628826 L15.9495396,11.9372417 L19.6602438,11.9372417 L19.6602438,8.42628826 L19.6602438,8.42628826 Z M24.0456214,8.42628826 L20.3349172,8.42628826 L20.3349172,11.9372417 L24.0456214,11.9372417 L24.0456214,8.42628826 L24.0456214,8.42628826 Z"></path></svg>
		</li>
        <li>
          <svg viewBox="0 0 200 91" id="zhihu" fill="#0084FF" style="margin-top: 10px;" width="60" height="26">
            <path
              d="M53.29 80.035l7.32.002 2.41 8.24 13.128-8.24h15.477v-67.98H53.29v67.978zm7.79-60.598h22.756v53.22h-8.73l-8.718 5.473-1.587-5.46-3.72-.012v-53.22zM46.818 43.162h-16.35c.545-8.467.687-16.12.687-22.955h15.987s.615-7.05-2.68-6.97H16.807c1.09-4.1 2.46-8.332 4.1-12.708 0 0-7.523 0-10.085 6.74-1.06 2.78-4.128 13.48-9.592 24.41 1.84-.2 7.927-.37 11.512-6.94.66-1.84.785-2.08 1.605-4.54h9.02c0 3.28-.374 20.9-.526 22.95H6.51c-3.67 0-4.863 7.38-4.863 7.38H22.14C20.765 66.11 13.385 79.24 0 89.62c6.403 1.828 12.784-.29 15.937-3.094 0 0 7.182-6.53 11.12-21.64L43.92 85.18s2.473-8.402-.388-12.496c-2.37-2.788-8.768-10.33-11.496-13.064l-4.57 3.627c1.363-4.368 2.183-8.61 2.46-12.71H49.19s-.027-7.38-2.372-7.38zm128.752-.502c6.51-8.013 14.054-18.302 14.054-18.302s-5.827-4.625-8.556-1.27c-1.874 2.548-11.51 15.063-11.51 15.063l6.012 4.51zm-46.903-18.462c-2.814-2.577-8.096.667-8.096.667s12.35 17.2 12.85 17.953l6.08-4.29s-8.02-11.752-10.83-14.33zM199.99 46.5c-6.18 0-40.908.292-40.953.292v-31.56c1.503 0 3.882-.124 7.14-.376 12.773-.753 21.914-1.25 27.427-1.504 0 0 3.817-8.496-.185-10.45-.96-.37-7.24 1.43-7.24 1.43s-51.63 5.153-72.61 5.64c.5 2.756 2.38 5.336 4.93 6.11 4.16 1.087 7.09.53 15.36.277 7.76-.5 13.65-.76 17.66-.76v31.19h-41.71s.88 6.97 7.97 7.14h33.73v22.16c0 4.364-3.498 6.87-7.65 6.6-4.4.034-8.15-.36-13.027-.566.623 1.24 1.977 4.496 6.035 6.824 3.087 1.502 5.054 2.053 8.13 2.053 9.237 0 14.27-5.4 14.027-14.16V53.93h38.235c3.026 0 2.72-7.432 2.72-7.432z"
              fill-rule="evenodd"></path>
          </svg>
        </li>
        <li><img id="leetcode" style="margin-bottom: 20px;" src="/assets/images/leetcode.svg" alt="logo"></li>
      </ul>
    </div>
    {% endif %}
  </div><!-- end banner -->

  <div class="wrapper">
    <nav class="wrapper-nav">
	 {% if page.isArticle %}
      <ul></ul>
	  {% endif %}
    </nav>

    <section>
      {% if page.tags.size > 0 %}
      <span>TAGS:</span>
      {% for tag in page.tags %}
      <a href="{% include tag_link.html tag_name = tag %}">{{ tag | escpe }}</a>
      {% endfor %}
      {% endif %}
      {{ content }}

      {% if page.isArticle %}
      <div id="gitmentContainer"></div>
      {% endif %}
    </section>

    <div class="category-list">
      <label>归档:</label>
      {% assign sort_categories = site.categories | sort %}

      {% for category in sort_categories %}
      {% assign category_name = category | first %}
      {% assign posts_of_category = category | last %}
      {% assign first_post = posts_of_category[0] %}

      {% if category_name == first_post.categories[0] %}
      {% assign sub_categories = "" %}
      {% for post in posts_of_category %}
      {% if post.categories.size > 1 %}
      {% assign sub_categories = sub_categories | append: post.categories[1] | append: "|" %}
      {% endif %}
      {% endfor %}

      {% assign sub_categories = sub_categories | split: "|" | uniq %}
      {% assign sub_categories_size = sub_categories | size %}

      <div class="panel-group">
        <div class="panel panel-default">
          <div class="panel-heading" id="{{ category_name }}">
            <i class="glyphicon glyphicon-folder-close"></i>&nbsp;
            <a class="panel-title" href="/category/{{ category_name }}.html">{{ category_name }}</a>&nbsp;
            {% assign top_posts_size = site.categories[category_name] | size %}
            <span class="text-muted small">
              {{ sub_categories_size }} folder{% if sub_categories_size > 1 %}s{% endif %}, {{ top_posts_size }} post{%
              if top_posts_size > 1 %}s{% endif %}
            </span>
            <a data-toggle="collapse" href="#grp_{{ category_name }}"
              class=" {% if sub_categories_size <= 0%}inactiveLink{% endif %}">
              <i class="glyphicon glyphicon-chevron-right" style="float: right; padding-top: 0.2rem;"></i>
            </a>
          </div>

          {% if sub_categories_size > 0 %}
          <div id="grp_{{ category_name }}" class="panel-collapse collapse">
            <ul class="list-group">
              {% for sub_category in sub_categories %}
              <li class="list-group-item" style="padding-left: 4rem;">
                <i class="glyphicon glyphicon-folder-close"></i>&nbsp;<a href="/category/{{ sub_category }}.html">{{
                  sub_category }}</a>
                {% assign posts_size = site.categories[sub_category] | size %}
                <span class="text-muted small">&nbsp;{{ posts_size }}</span>
              </li>
              {% endfor %}
            </ul>
          </div>
          {% endif %}
        </div>
      </div>
      {% endif %}
      {% endfor %}
    </div>


    <footer>
      {% if site.github.is_project_page %}
      <p>Project maintained by <a href="{{ site.github.owner_url }}">{{ site.github.owner_name }}</a></p>
      {% endif %}
    </footer>
  </div>

        <!-- <script src="https://imsun.github.io/gitment/dist/gitment.browser.js"></script>
        <script>
              var gitment = new Gitment({
                  owner: 'goodfeeling',
                  repo: 'goodfeeling.github.io',
                  oauth: {
                      client_id: '3e4b4301695bc13687e6',
                      client_secret: 'd3b889476dec1e07ccd42cf322082d7a96f5ded8',
                  },
              });
              gitment.render('gitmentContainer');
        </script> -->

  {% if site.google_analytics %}
  <script>
    (function (i, s, o, g, r, a, m) {
      i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
        (i[r].q = i[r].q || []).push(arguments)
      }, i[r].l = 1 * new Date(); a = s.createElement(o),
        m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
    })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');
    ga('create', '{{ site.google_analytics }}', 'auto');
    ga('send', 'pageview');
  </script>
  {% endif %}

  <script type="text/javascript">
    $(function () {
      var prefix = "grp_";

      $(".collapse").on("hide.bs.collapse", function () {
        var id = $(this).attr('id').substring(prefix.length);
        if (id) { //兼容bootstrap首页顶栏手机尺寸缩放
          $("#" + id + " i.glyphicon.glyphicon-folder-open").attr("class", "glyphicon glyphicon-folder-close");
          $("#" + id + " i.glyphicon.glyphicon-chevron-down").attr("class", "glyphicon glyphicon-chevron-right");
        }
      });

      $(".collapse").on("show.bs.collapse", function () {
        var id = $(this).attr('id').substring(prefix.length);
        if (id) { //兼容bootstrap首页顶栏手机尺寸缩放
          $("#" + id + " i.glyphicon.glyphicon-folder-close").attr("class", "glyphicon glyphicon-folder-open");
          $("#" + id + " i.glyphicon.glyphicon-chevron-right").attr("class", "glyphicon glyphicon-chevron-down");
        }
      });
    });
  </script>
  <script type="text/javascript">
    var radius = 70; //标签云半径
    var d = 200;
    var dtr = Math.PI / 180;
    var mcList = [];
    var lasta = 1;
    var lastb = 1;
    var distr = true;
    var tspeed = 10; //速度
    var size = 200;
    var mouseX = 10; //转动
    var mouseY = 10;
    var howElliptical = 1;
    var aA = null;
    var oDiv = null;
    window.onload = function () {
      var i = 0;
      var oTag = null;
      oDiv = document.getElementById('tag-cloud');
      aA = oDiv.getElementsByTagName('a');
      for (i = 0; i < aA.length; i++) {
        oTag = {};
        aA[i].onmouseover = (function (obj) {
          return function () {
            obj.on = true;
            this.style.zIndex = 9999;
            this.style.color = '#ffcc00';
            this.style.padding = '5px 5px';
            this.style.filter = "alpha(opacity=100)";
            this.style.opacity = 1;
          }
        })(oTag)
        aA[i].onmouseout = (function (obj) {
          return function () {
            obj.on = false;
            this.style.zIndex = obj.zIndex;
            this.style.color = '#ffcc00';
            this.style.padding = '5px';
            this.style.filter = "alpha(opacity=" + 100 * obj.alpha + ")";
            this.style.opacity = obj.alpha;
            this.style.zIndex = obj.zIndex;
          }
        })(oTag)
        oTag.offsetWidth = aA[i].offsetWidth;
        oTag.offsetHeight = aA[i].offsetHeight;
        mcList.push(oTag);
      }
      sineCosine(0, 0, 0);
      positionAll();
      (function () {
        update();
        setTimeout(arguments.callee, 40);
      })();
    };
    function update() {
      var a, b, c = 0;
      a = (Math.min(Math.max(-mouseY, -size), size) / radius) * tspeed;
      b = (-Math.min(Math.max(-mouseX, -size), size) / radius) * tspeed;
      lasta = a;
      lastb = b;
      if (Math.abs(a) <= 0.01 && Math.abs(b) <= 0.01) {
        return;
      }
      sineCosine(a, b, c);
      for (var i = 0; i < mcList.length; i++) {
        if (mcList[i].on) {
          continue;
        }
        var rx1 = mcList[i].cx;
        var ry1 = mcList[i].cy * ca + mcList[i].cz * (-sa);
        var rz1 = mcList[i].cy * sa + mcList[i].cz * ca;

        var rx2 = rx1 * cb + rz1 * sb;
        var ry2 = ry1;
        var rz2 = rx1 * (-sb) + rz1 * cb;

        var rx3 = rx2 * cc + ry2 * (-sc);
        var ry3 = rx2 * sc + ry2 * cc;
        var rz3 = rz2;

        mcList[i].cx = rx3;
        mcList[i].cy = ry3;
        mcList[i].cz = rz3;

        per = d / (d + rz3);

        mcList[i].x = (howElliptical * rx3 * per) - (howElliptical * 2);
        mcList[i].y = ry3 * per;
        mcList[i].scale = per;
        var alpha = per;
        alpha = (alpha - 0.6) * (10 / 6);
        mcList[i].alpha = alpha * alpha * alpha - 0.2;
        mcList[i].zIndex = Math.ceil(100 - Math.floor(mcList[i].cz));
      }
      doPosition();
    }
    function positionAll() {
      var phi = 0;
      var theta = 0;
      var max = mcList.length;
      for (var i = 0; i < max; i++) {
        if (distr) {
          phi = Math.acos(-1 + (2 * (i + 1) - 1) / max);
          theta = Math.sqrt(max * Math.PI) * phi;
        } else {
          phi = Math.random() * (Math.PI);
          theta = Math.random() * (2 * Math.PI);
        }
        //坐标变换
        mcList[i].cx = radius * Math.cos(theta) * Math.sin(phi);
        mcList[i].cy = radius * Math.sin(theta) * Math.sin(phi);
        mcList[i].cz = radius * Math.cos(phi);

        aA[i].style.left = mcList[i].cx + oDiv.offsetWidth / 2 - mcList[i].offsetWidth / 2 + 'px';
        aA[i].style.top = mcList[i].cy + oDiv.offsetHeight / 2 - mcList[i].offsetHeight / 2 + 'px';
      }
    }
    function doPosition() {
      var l = oDiv.offsetWidth / 2;
      var t = oDiv.offsetHeight / 2;
      for (var i = 0; i < mcList.length; i++) {
        if (mcList[i].on) {
          continue;
        }
        var aAs = aA[i].style;
        if (mcList[i].alpha > 0.1) {
          if (aAs.display != '')
            aAs.display = '';
        } else {
          if (aAs.display != 'none')
            aAs.display = 'none';
          continue;
        }
        aAs.left = mcList[i].cx + l - mcList[i].offsetWidth / 2 + 'px';
        aAs.top = mcList[i].cy + t - mcList[i].offsetHeight / 2 + 'px';
        //aAs.fontSize=Math.ceil(12*mcList[i].scale/2)+8+'px';
        //aAs.filter="progid:DXImageTransform.Microsoft.Alpha(opacity="+100*mcList[i].alpha+")";
        aAs.filter = "alpha(opacity=" + 100 * mcList[i].alpha + ")";
        aAs.zIndex = mcList[i].zIndex;
        aAs.opacity = mcList[i].alpha;
      }
    }
    function sineCosine(a, b, c) {
      sa = Math.sin(a * dtr);
      ca = Math.cos(a * dtr);
      sb = Math.sin(b * dtr);
      cb = Math.cos(b * dtr);
      sc = Math.sin(c * dtr);
      cc = Math.cos(c * dtr);
    }
  </script>

  <script>
    $("#leetcode").on('click', function (e) {
      window.open("https://leetcode-cn.com/u/goodfeeling/", '_blank');
    })
    $("#zhihu").on('click', function (e) {
      window.open("https://www.zhihu.com/people/confuse-22", '_blank');
    })
    $("#logo").on('click', function (e) {
      window.open("https://github.com/goodfeeling", '_blank');
    })
	$("#docker").on('click', function (e) {
      window.open("https://hub.docker.com/u/yzw96", '_blank');
    })
  </script>
</body>

</html>